使用Wave Python模块获取和写入音频 您所在的位置:网站首页 python nc读取 使用Wave Python模块获取和写入音频

使用Wave Python模块获取和写入音频

2023-03-26 10:47| 来源: 网络整理| 查看: 265

因此,我尝试使用Python Wave模块来获取音频文件,并从其中获取所有帧,检查它们,然后将它们写回另一个文件。我尝试将我刚才正在读取的声音输出到另一个文件,但它要么作为噪音输出,要么根本没有声音。所以,我很确定我没有分析文件并获得正确的帧...?我正在处理一个立体声16位声音文件。虽然我可以使用一个更简单的文件来理解这个过程,但我最终希望能够接受任何类型的声音文件来处理,所以我需要了解问题是什么。

我还注意到32位声音文件不能被Wave模块读取--它给了我一个“未知格式”的错误。对此有什么想法吗?是不是我可以绕过它,这样我至少可以读取32位音频文件,即使我只能“渲染”16位文件?

我有点意识到wave文件在左声道和右声道之间是交错的(第一个样本用于左声道,第二个样本用于右声道,等等)。但是我如何分离这两个声道?这是我的代码。我删掉了输出代码,看看我是否正确地读取了文件。我使用的是Python 2.7.2:

import scipy import wave import struct import numpy import pylab fp = wave.open('./sinewave16.wav', 'rb') # Problem loading certain kinds of wave files in binary? samplerate = fp.getframerate() totalsamples = fp.getnframes() fft_length = 2048 # Guess num_fft = (totalsamples / fft_length) - 2 temp = numpy.zeros((num_fft, fft_length), float) leftchannel = numpy.zeros((num_fft, fft_length), float) rightchannel = numpy.zeros((num_fft, fft_length), float) for i in range(num_fft): tempb = fp.readframes(fft_length / fp.getnchannels() / fp.getsampwidth()); #tempb = fp.readframes(fft_length) up = (struct.unpack("%dB"%(fft_length), tempb)) #up = (struct.unpack("%dB"%(fft_length * fp.getnchannels() * fp.getsampwidth()), tempb)) #print (len(up)) temp[i,:] = numpy.array(up, float) - 128.0 temp = temp * numpy.hamming(fft_length) temp.shape = (-1, fp.getnchannels()) fftd = numpy.fft.rfft(temp) pylab.plot(abs(fftd[:,1])) pylab.show() #Frequency of an FFT should be as follows: #The first bin in the FFT is DC (0 Hz), the second bin is Fs / N, where Fs is the sample rate and N is the size of the FFT. The next bin is 2 * Fs / N. To express this in general terms, the nth bin is n * Fs / N. # (It would appear to me that n * Fs / N gives you the hertz, and you can use sqrt(real portion of number*r + imaginary portion*i) to find the magnitude of the signal

目前,这将加载声音文件,将其解压到一个结构中,并绘制声音文件,以便我可以查看它,但我认为它没有获取所有音频文件,或者它没有正确获取。我是否正确地将wave文件读入结构?有没有关于使用Python读取和分析wave /音频文件的最新资源?任何帮助都将不胜感激。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有